3D灰度模型显示 Sample详情

最后更新时间:2019年7月4日

3D灰度模型显示方法

移动端的二维地图视图中,支持3D灰度模型加载,即通过MapGIS桌面软件设置二维矢量区图层的自绘模式属性,然后转换为矢量离线数据包加载即可。

采用基于二维区图层的方式组织3D灰度模型数据的大体步骤如下,详细操作步骤参考数据组织配置 > 数据预处理模块。

(1)准备3D楼块源数据。在MapGIS 10桌面工具(MapWorkSpace)中制作二维区图层(building),在当前二维区图层中右键属性-->显示-->自绘参数设置;

(2)组织地图文档。将二维区图层和其他需要的二维图层一起组织成地图文档(如本示例组织地图文档为buildings.mapx);

(3)数据转换。将上一步生成的地图文档(如buildings.mapx)使用桌面工具中的移动数据转换工具进行转换,转换完成后会在指定存放路径下生成一个文件夹,文件夹包含转换后的离线数据库文件与地图文档(如buildings.db、buildings.mapx),把转换后的数据放到移动设备存储卡的相应数据目录中;

(4)地图加载。在程序代码中编写加载地图文档的方法,接口调用非常简单,与离线矢量地图的加载方式相同,代码如下:

@interface Show3DViewMap_ViewController ()<MapViewDelegate>
//定义地图视图对象
@property (nonatomic,strong) MGSMapView *mMapView;

3D灰度模型地图加载:

_mMapView=[[MGSMapView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64)];

[self.view addSubview:_mMapView];

//三维灰度模型路径
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"/MapGIS Mobile 2D Sample/Map/MapShow/Buildings/buildings.mapx"];

//设置代理
[_mMapView setDelegate:self];
//加载三维灰度模型
[_mMapView loadFromFileAsync:path];

地图加载回调监听:

//开始加载地图监听
-(void)willStartLoadingMapWithMapView:(MGSMapView *)mapView strDocPath:(NSString *)strDocPath{
    NSLog(@"开始加载地图");
}

//加载地图完成事件监听
-(void)didFinishLoadingMapWithMapView:(MGSMapView *)mapView strDocPath:(NSString *)strDocPath{
    NSLog(@"地图加载成功");
}

//加载地图失败事件监听
-(void)didFailLoadingMapWithMapView:(MGSMapView *)mapView strDocPath:(NSString *)strDocPath{
    NSLog(@"地图加载失败");
}

显示效果如下所示:

04013D灰度模型显示效果.jpg